using System;
using System.Collections.Generic;
using System.Text;

using Mud.Common.Physical;


namespace Mud.Server.Physical
{
    /// <summary>
    /// Represents an event that happens in the game world.
    /// </summary>
    public interface IPhysicalEvent
    {


        /// <summary>
        /// Event origin in the area.
        /// </summary>
        Location Origin
        {
            get;
        }


        /// <summary>
        /// Double-dispatch pattern. Event is always 'sent' to the receiver, never 'received'
        /// by the receiver.
        /// </summary>
        /// <param name="receiver">Receiver which receives the event.</param>
        void Send(IPhysicalEventReceiver receiver);

    }


}
